package com.mobimap.nhom9.bus;

import java.util.List;

import com.mobimap.nhom9.dto.LocationDTO;
import com.mobimap.nhom9.dto.PlaceExDTO;
import com.mobimap.nhom9.dto.StreetDTO;
import com.mobimap.nhom9.dto.StreetSegmentDTO;


public interface ISearchEngineBUS {
	/**
	 * Get all addresses by input key 
	 * @param tuKhoa
	 * @return List<AddressDTO> / null
	 */
	List<PlaceExDTO> timDiaChi(String tuKhoa);
	
	/**
	 * Get all DichVu
	 * @param diaDiem - address that search around
	 * @param dichVu - type of DichVu
	 * @return List<PlaceDTO> / null
	 */
	List<PlaceExDTO> timDichVuXungQuanh(String diaDiem, String dichVu);
	
	/**
	 * 
	 * @param userLocation
	 * @return List<PlaceDTO> / null
	 */
	List<PlaceExDTO> timDichVuXungQuanh(LocationDTO userLocation);
	
	/**
	 * Get Directions from Location to another Location
	 * @param startPoint - Begin Location(Latitude/Longitude)
	 * @param endPoint - End Location(Latitude/Longitude)
	 * @return List<StreetSegmentDTO> / empty
	 */
	List<StreetSegmentDTO> timDuongDi(LocationDTO startPoint, LocationDTO endPoint);
	
	/**
	 * Get StreetDTO - info of street by input  StreetSegment
	 * @param segment
	 * @return StreetDTO / null
	 */
	StreetDTO getStreet(StreetSegmentDTO segment);
}
